package com.basic.modules.ykf.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.basic.common.annotation.DictParam;
import com.basic.common.validator.group.AddGroup;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;

/**
 * 店铺子账号
 *
 * @author maoheng
 * @email 15738859597@163.com
 * @date 2024-05-15 15:36:23
 */
@Data
@TableName("ykf_customer_sub_account")
public class YkfCustomerSubAccountEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *
	 */
	@TableId
	private Long subAccountId;
	/**
	 * 账号
	 */
	private String accountNo;
	/**
	 * 账号名称
	 */
	private String accountName;
	/**
	 * 账号密码
	 */
	private String accountPassword;
	/**
	 * 客户ID
	 */
	private Long customerId;
	/**
	 * 店铺名称
	 */
	private String customerName;
	/**
	 * 店铺ID
	 */
	private Long shopId;
	/**
	 * 店铺编号
	 */
	private String shopNo;
	/**
	 * 店铺名称
	 */
	private String shopName;
	/**
	 * 分配规则ID
	 */
	private String allocationRuleId;
	/**
	 * 分配规则名称
	 */
	private String allocationRuleName;
	/**
	 * 客服用户ID
	 */
	private Long userId;
	/**
	 * 客服花名
	 */
	private String flowerName;
	/**
	 * 客服姓名
	 */
	private String name;
	/**
	 * 岗位分类
	 */
	private String customPostType;
	/**
	 * 岗位分类名称
	 */
	@DictParam(field = "customPostType", targetField = "customPostTypeName", dictType = "customPostType")
	private String customPostTypeName;
	/**
	 * 客服分类
	 */
	@TableField(exist = false)
	private String customType;
	/**
	 * 客服分类
	 */
	@TableField(exist = false)
	@DictParam(field = "customType", targetField = "customTypeName", dictType = "customType")
	private String customTypeName;
	/**
	 * 平台编号 字典platform
	 */
	private String platformNo;
	/**
	 * 平台名称
	 */
	@DictParam(field = "platformNo", targetField = "platformName", dictType = "platform")
	private String platformName;
	/**
	 * 分部客服 字典 exName
	 */
	private String exName;
	/**
	 * 分部客服名称
	 */
	@DictParam(field = "exName", targetField = "exNameLabel", dictType = "exName")
	private String exNameLabel;
	/**
	 * 公司 字典company
	 */
	private String companyNo;
	/**
	 * 公司名称
	 */
	@DictParam(field = "companyNo", targetField = "companyName", dictType = "company")
	private String companyName;
	/**
	 * 开始日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date startDate;
	/**
	 * 结束日期
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date endDate;
	/**
	 * 底薪
	 */
	private BigDecimal baseSalary;
	/**
	 * 约定薪资
	 */
	private BigDecimal conventionSalary;
	/**
	 * 提成比例
	 */
	private BigDecimal commissionRatio;
	/**
	 * 发送短信时机 1-立即发送 2-三小时后发送
	 */
	private Integer sendSmsSign;
	/**
	 * 状态 1-启用 2-停用
	 */
	@TableField(exist = false)
	private Integer subStatus;
	/**
	 * 状态 1-启用 2-停用
	 */
	private Integer status;
	/**
	 * 确认状态 1-已确认 0-待确认
	 */
	private Integer confirmStatus;
	/**
	 * 状态 1-启用 2-停用
	 */
	@TableField(exist = false)
	private Integer shopStatus;
	/**
	 * 备注
	 */
	private String remark;
	/**
	 * 创建者ID
	 */
	@TableField(fill = FieldFill.INSERT)
	private Long createUserId;
	/**
	 * 创建人名称
	 */
//	@DictParam(field = "createUserId", targetField = "createUserName", dictType = "flowerName")
	@TableField(fill = FieldFill.INSERT)
	private String createUserName;
	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/**
	 * 总公司分配人
	 */
	private String headDispatchName;

	/**
	 * 分公司分配人
	 */
	private String branchDispatchName;

	/**
	 * 工号
	 */
	private String no;

	/**
	 * 手机号
	 */
	private String mobile;

	/**
	 * 编组
	 */
	private String groupNo;

	/**
	 * keyword
	 */
	@TableField(exist = false)
	private String keyword;

	/**
	 * 结束日期晚于
	 */
	@TableField(exist = false)
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date endDateS;

	/**
	 * 店铺链接
	 */
	private String shopLinkUrl;

	/**
	 * 在线状态
	 */
	private String onLineStatus;

	@TableField(exist = false)
	private BigDecimal consultPeopleNum;
	@TableField(exist = false)
	private BigDecimal conversionRate;
	@TableField(exist = false)
	private BigDecimal responseSecond;
	@TableField(exist = false)
	private String serviceShiftNo;
	@TableField(exist = false)
	@DictParam(field = "serviceShiftNo", targetField = "serviceShiftName", dictType = "serviceShift")
	private String serviceShiftName;
	@TableField(exist = false)
	private BigDecimal commission;
	/**
	 * 服务状态 0-待服务 1-服务中 2-已过期
	 */
	@TableField(exist = false)
	private String serviceStatus;

	/**
	 * 指派人
	 */
	@TableField(exist = false)
	private String pointUser;

	@TableField(exist = false)
	private String oldId;
	@TableField(exist = false)
	private String oldSubId;

	/**
	 * 录入方式 1-爬取录入 2-手动录入
	 */
	private Integer inputType;

	@TableField(exist = false)
	private List<Long> powerSubAccountIds;

	/**
	 * 总公司底薪
	 */
	private BigDecimal companyBaseSalary;

	/**
	 * 停止人userId
	 */
	private Long stopUserId;

	/**
	 * 停止人名称
	 */
	private String stopUserName;

	/**
	 * 停止时间
	 */
//	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
//	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date stopTime;

	/**
	 * 店铺分组
	 */
	@TableField(exist = false)
	private String shopGroup;

	/**
	 * 查询状态 1-只显示当前有效分配记录 2-	显示所有历史分配记录
	 */
	@TableField(exist = false)
	private Integer searchStatus;


	@TableField(exist = false)
	private String shopTypeName;


	/**
	 * 创建者ID
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Long updateUserId;
	/**
	 * 创建人名称
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private String updateUserName;
	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

}
